package com.haoze.nurse.dao;

import com.haoze.nurse.dto.Assembly;
import com.haoze.nurse.dto.Element;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

public interface NurseElementMapper {


    /**
     * 通过拼音从值域表分页查询数据源选项
     *
     * @param elementId    数据源ID
     * @param pinyin       查询词汇拼音
     * @param word
     * @param isPinyin
     * @param page         页号
     * @param parentSerial
     * @return
     */
    List<Map<String, String>> querySelections(@Param("elementId") String elementId, @Param("pinyin") String pinyin,
                                              @Param("word") String word, @Param("isPinyin") boolean isPinyin, @Param("dataCode") String dataCode,
                                              @Param("page") int page, @Param("pageSize") int pageSize, @Param("parentSerial") String parentSerial,@Param("wardId") String wardId,@Param("isWeight") String isWeight);

    /**
     * 通过拼音从值域表分页查询数据源选项
     *
     * @param elementId    数据源ID
     * @param parentSerial
     * @return
     */
    List<Map<String, String>> queryNoSearchSelections(@Param("elementId") String elementId, @Param("dataCode") String dataCode, @Param("parentSerial") String parentSerial, @Param("wardId") String wardId,@Param("isWeight") String isWeight);


    List<Element> getNumberElements(@Param("num") String num);

    /**
     * 从医疗术语选项ID里查询可能的数据源组合
     *
     * @param isPinyin
     * @param pinyin
     * @param word
     * @param userId
     * @return
     */
    List<Assembly> queryAssemblyFromMedical(@Param("isPinyin") boolean isPinyin,
                                            @Param("pinyin") String pinyin,
                                            @Param("word") String word,
                                            @Param("userId") String userId);


    /**
     * 从基础数据里查询可能的数据值
     *
     * @param word
     * @return
     */
    List<Map<String, String>> queryBasicData(@Param("word") String word);


    List<Element> queryElementByBasicData(@Param("id") String id, @Param("varCode") String varCode);

    List<Element> queryElement(@Param("isPinyin") boolean isPinyin, @Param("pinyin") String pinyin, @Param("word") String word);
}
